﻿// 第K个最大递增子项目 KILS.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
/*
https://algospot.com/judge/problem/read/KLIS

问题

在某个整数序列中，通过删除0个或多个数字，可以获得该序列的子序列（subsequence）。例如，在序列10 7 4 9中，有7 4 9、10 4、10 9等子序列。但是，10 4 7不是原始序列的子序列，因为它与原始序列的顺序不同。

当一个子序列以递增的方式排列时，称该子序列为递增子序列（increasing subsequence），其中最长的子序列被称为最长递增子序列（LIS，longest increasing subsequence）。例如，在序列5 20 21 22 8 9 10中，最长递增子序列是5 8 9 10。

一个序列可能有两个或更多的LIS。例如，序列4 5 6 1 2 3有两个LIS。

给定一个没有重复数字（不会出现重复数字）的序列，编写一个程序输出该序列中按字典顺序位于第k个位置的LIS。

输入
输入的第一行包含测试用例的数量C（<= 50）。每个测试用例的第一行包含序列中元素的数量N（<= 500）和K。K可以存储为32位有符号整数。接下来的一行包含N个整数作为序列。每个整数大于等于1且小于等于100,000，并且不会重复出现。

可以假设给定序列的LIS至少有K个。

输出
对于每个测试用例，输出两行。第一行输出LIS的长度L，接下来的一行输出Kth LIS的L个整数。

示例输入
3
9 2
1 9 7 4 2 6 3 11 10
8 4
2 1 4 3 6 5 8 7
8 2
5 6 7 8 1 2 3 4

示例输出
4
1 2 3 11
4
1 3 6 8
4
5 6 7 8
*/
int main()
{
    std::cout << "Hello World!\n";
}

 